const puppeteer = require('puppeteer');

async function loginAndGetCookies() {
    const browser = await puppeteer.launch({
        headless: false,  // 显示浏览器界面，方便调试
        args: [
            '--no-sandbox',
            '--disable-setuid-sandbox',
            '--window-size=1280,800'  // 设置浏览器窗口的尺寸
        ]
    });

    const page = await browser.newPage();

    // 设置窗口大小（例如：宽 1280px，高 800px）
    await page.setViewport({
        width: 1280,
        height: 900
    });

    await page.goto('https://channels.weixin.qq.com/login.html');

    console.log('请使用微信扫码登录...');

    // 等待页面跳转到登录成功后的页面（通过 URL 来判断）
    await page.waitForFunction(
      'window.location.href.includes("channels.weixin.qq.com/platform/")',
      { timeout: 20000 }  // 等待最多20秒
    );

    console.log('扫码成功，正在获取 Cookie...');

    // 等待页面完成加载，增加网络请求等待
    await page.waitForNetworkIdle({ idleTime: 3000 }); // 等待 3 秒钟没有网络请求

    // 获取 document.cookie 内容
    const cookieStr = await page.evaluate(() => {
        return document.cookie; // 获取当前页面的 Cookie 字符串
    });

    // 关闭浏览器
    await browser.close();

    // 合并并返回所有 Cookies
    return cookieStr;
}

loginAndGetCookies()
  .then(cookies => {
      console.log('所有获取到的 Cookies:', cookies);
  })
  .catch(error => {
      console.error('发生错误:', error);
  });
